home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er 1990 January
/
64er_Magazin_90-01_1990_Markt__Technik_de_Side_A.d64
/
quelltext 1
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
10KB
|
420 lines
10 : sys 36864
15 : .opt oo
20 : *=$c000
25 :;
30 listen = $ffb1
35 second = $ff93
40 iecout = $ffa8
45 unlstn = $ffae
50 diskname = $0480
55 chrout = $ffd2
60 cint = $e518
65 chrin = $ffcf
70 get = $ffe4
75 iecin = $ffa5
80 talk = $ffb4
85 untalk = $ffab
90 talksa = $ff96
95 plot = $fff0
100 :;
105 :;
110 :;****** bildschirmaufbau *******
115 :;
120 menu ldx #0
125 : lda #32
130 clrname sta name,x
135 : inx
140 : cpx #16
145 : bcc clrname
150 : sta id1+1
155 : sta id1+2
160 : jsr cint
165 : lda #0
170 : sta 53280
175 : sta 53281
180 : lda #<(screen)
185 : sta $fb
190 : lda #>(screen)
195 : sta $fc
200 : ldy #0
205 output1 lda ($fb),y
210 : jsr chrout
215 : iny
220 : bne chkend
225 : inc $fc
230 chkend cmp #160
235 : bne output1
240 : ldx #$ff
245 input1 jsr chrin
250 : cmp #13
255 : beq (NULL)tname
260 : inx
265 : cpx #16
270 : bcs input1
275 : sta name,x
280 : bcc input1
285 (NULL)tname ldy #0
290 output2 lda id2,y
295 : jsr chrout
300 : iny
305 : cmp #160
310 : bne output2
315 : ldx #$ff
320 input2 jsr chrin
325 : cmp #13
330 : beq start
335 : inx
340 : cpx #2
345 : bcs input2
350 : sta id1+1,x
355 : bcc input2
360 start lda #<(frmtrack)
365 : sta $fb
370 : lda #>(frmtrack)
375 : sta $fc
380 : lda #<(bufferwrt)
385 : sta $fd
390 : lda #>(bufferwrt)
395 : sta $fe
400 : lda #$0a
405 : sta $57
410 : lda #$04
415 : sta $58
420 : jsr bufferwrt
425 : lda #0
430 : sta $90
435 : lda #8
440 : jsr listen
445 : lda #$6f
450 : jsr second
455 : lda $90
460 : bmi deverr
465 : jsr unlstn
470 : lda #8
475 : jsr talk
480 : lda #$6f
485 : jsr talksa
490 : ldx #0
495 errin jsr iecin
500 : sta $0200,x
505 : inx
510 : cmp #13
515 : bne errin
520 : jsr untalk
525 : lda $0200
530 : cmp #"0"
535 : bne error
540 : lda $0201
545 : cmp #"0"
550 : bne error
555 : jmp menu
560 :;
565 deverr ldx #$ff
570 dev inx
575 : lda $a1d0,x
580 : sta $0200,x
585 : bpl dev
590 : and #$7f
595 : sta $0200,x
600 : inx
605 : lda #13
610 : sta $0200,x
615 error inc 199
620 : stx 2
625 : ldx #20
630 : lda #40
635 : sec
640 : sbc 2
645 : lsr
650 : tay
655 : clc
660 : jsr plot
665 : ldx #0
670 errout lda $0200,x
675 : jsr chrout
680 : inx
685 : cmp #13
690 : bne errout
695 : lsr 199
700 inkey jsr get
705 : beq inkey
710 : jmp menu
715 :;
720 :;****** format-irqprogramm ******
725 :;
730 frmtrack lda $1c00
735 : and #$10
740 : bne diskready
745 : lda #8
750 : jmp $f969
755 diskready lda $1c0c
760 : and #$1f
765 : ora #$c0
770 : sta $1c0c
775 : lda #$ff
780 : sta $1c03
785 : lda #$55
790 : sta $1c01
795 : lda $06
800 : jsr $f24b
805 : sta $43
810 : ldy #0
815 : sty $07
820 setheader lda #8
825 : sta $0700,y
830 : iny
835 : lda #0
840 : eor $07
845 : eor $06
850 : eor $13
855 : eor $12
860 : sta $0700,y
865 : iny
870 : lda $07
875 : sta $0700,y
880 : iny
885 : lda $06
890 : sta $0700,y
895 : iny
900 : lda $13
905 : sta $0700,y
910 : iny
915 : lda $12
920 : sta $0700,y
925 : iny
930 : lda #$0f
935 : sta $0700,y
940 : iny
945 : sta $0700,y
950 : iny
955 : inc $07
960 : lda $07
965 : cmp $43
970 : bcc setheader
975 : tya:pha
980 : lda #7
985 : sta $31
990 : jsr $fe30
995 : pla:tay
1000 : dey
1005 moveblk lda $0700,y
1010 : sta $0745,y
1015 : dey
1020 : bne moveblk
1025 : lda $0700
1030 : sta $0745
1035 : ldy #$44
1040 moverest lda $01bb,y
1045 : sta ($30),y
1050 : dey
1055 : bpl moverest
1060 : lda #5
1065 : sta $31
1070 : lda #00
1075 : sta $32
1080 nextblock lda #$ff
1085 : sta $1c01
1090 : ldx #5
1095 sync bvc sync
1100 : clv
1105 : dex
1110 : bne sync
1115 : ldx #$0a
1120 : ldy $32
1125 writehead bvc writehead
1130 : clv
1135 : lda $0700,y
1140 : sta $1c01
1145 : iny
1150 : dex
1155 : bne writehead
1160 : ldx #9
1165 : sty $32
1170 headergap bvc headergap
1175 : clv
1180 : lda #$55
1185 : sta $1c01
1190 : dex
1195 : bne headergap
1200 : lda #$ff
1205 : ldx #5
1210 blocksync bvc blocksync
1215 : clv
1220 : sta $1c01
1225 : dex
1230 : bne blocksync
1235 : ldx #$bb
1240 wrtblk1 bvc wrtblk1
1245 : clv
1250 : lda $0600,x
1255 : sta $1c01
1260 : inx
1265 : bne wrtblk1
1270 : ldy #$00
1275 wrtblk2 bvc wrtblk2
1280 : clv
1285 : lda ($30),y
1290 : sta $1c01
1295 : iny
1300 : bne wrtblk2
1305 : lda #$55
1310 : ldx #9
1315 sectorgap bvc sectorgap
1320 : clv
1325 : sta $1c01
1330 : dex
1335 : bne sectorgap
1340 : dec $07
1345 : bne nextblock
1350 wait bvc wait
1355 : clv
1360 wait2 bvc wait2
1365 : clv
1370 : jsr $fe00
1375 : lda #1
1380 : jmp $f969
1385 :;
1390 :;***** format-hauptprogramm *****
1395 :;
1400 : lda #15
1405 : sta $1c07
1410 : jsr $c118
1415 : lda #$01
1420 : sta $06
1425 : sta $07
1430 : lda #$c0
1435 : sta $00
1440 bump lda $00
1445 : bmi bump
1450 stepper lda $4a
1455 : bmi stepper
1460 : ldx #$ff
1465 writename inx
1470 : lda diskname,x
1475 : sta $0200,x
1480 : bne writename
1485 : ldy #16
1490 : sty $0274
1495 : iny
1500 : lda $0200,y
1505 : sta $12
1510 : iny
1515 : lda $0200,y
1520 : sta $13
1525 nexttrack ldy #0
1530 : sty $30
1535 : lda #5
1540 : sta $31
1545 : lda #$4b
1550 clrbuffer sta ($30),y
1555 : lda #$01
1560 : iny
1565 : bne clrbuffer
1570 : ldx #0
1575 : jsr $f5e9
1580 : sta $3a
1585 : jsr $f78f
1590 : ldx #$bb
1595 savebuff lda $0100,x
1600 : sta $0600,x
1605 : inx
1610 : bne savebuff
1615 : lda #$e0
1620 : sta $00
1625 format lda $00
1630 : bmi format
1635 : cmp #2
1640 : bcc ok
1645 : jmp $e60a
1650 ok inc $06
1655 : lda $06
1660 : cmp #36
1665 : bcc nexttrack
1670 : jmp $ee40
1675 name .asc " "
1680 id1 .asc ", "
1685 : .byt 0
1690 :;
1695 :;****** floppy-prg senden *******
1700 :;
1705 bufferwrt ldy #0
1710 : sty $5f
1715 : lda #3
1720 : sta $60
1725 sendprg ldx #30
1730 : lda #8
1735 : jsr listen
1740 : lda #$6f
1745 : jsr second
1750 : lda #"m"
1755 : jsr iecout
1760 : lda #"-"
1765 : jsr iecout
1770 : lda #"w"
1775 : jsr iecout
1780 : lda $5f
1785 : jsr iecout
1790 : lda $60
1795 : jsr iecout
1800 : txa
1805 : jsr iecout
1810 sendpart lda ($fb),y
1815 : jsr iecout
1820 : iny
1825 : dex
1830 : bne sendpart
1835 : jsr unlstn
1840 : clc
1845 : tya
1850 : adc $fb
1855 : sta $fb
1860 : bcc dpointer
1865 : inc $fc
1870 dpointer clc
1875 : tya
1880 : adc $5f
1885 : sta $5f
1890 : bcc nextpart
1895 : inc $60
1900 nextpart ldy #0
1905 : lda $fc
1910 : cmp $fe
1915 : bcc sendprg
1920 : bne execute
1925 : lda $fb
1930 : cmp $fd
1935 : bcc sendprg
1940 execute lda #8
1945 : jsr listen
1950 : lda #$6f
1955 : jsr second
1960 : lda #"m"
1965 : jsr iecout
1970 : lda #"-"
1975 : jsr iecout
1980 : lda #"e"
1985 : jsr iecout
1990 : lda $57
1995 : jsr iecout
2000 : lda $58
2005 : jsr iecout
2010 : jmp unlstn
2015 :;
2020 screen .asc "[147][155] [176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]"
2025 : .byt 13
2030 : .asc " [221] quickformat [221]"
2035 : .byt 13
2040 : .asc " [221] [221]"
2045 : .byt 13
2050 : .asc " [221] written in 1989 [221]"
2055 : .byt 13
2060 : .asc " [221] by marcel sommerick [221]"
2065 : .byt 13
2070 : .asc " [173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189]"
2075 : .byt 13
2080 : .asc " diskname:"
2085 : .byt 160
2090 id2 .byt 13
2095 : .asc " id:"
2100 : .byt 160